package edu.cuit.avatar.enums;

/**
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/7/19 13:42
 */
public abstract class WeekDay {
    public static final WeekDay SUN = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return MON;
        }
    };
    public static final WeekDay MON = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return TUE;
        }
    };
    public static final WeekDay TUE = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return WED;
        }
    };
    public static final WeekDay WED = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return THU;
        }
    };
    public static final WeekDay THU = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return THU;
        }
    };
    public static final WeekDay FRI = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return SAT;
        }
    };
    public static final WeekDay SAT = new WeekDay(){
        @Override
        public WeekDay nextDay() {
            return SUN;
        }
    };

    private WeekDay(){

    }

    @Override
    public String toString(){
        if(this == SUN)
            return "SUN";
        else if(this == MON)
            return "MON";
        else if(this == TUE)
            return "TUE";
        else if(this == WED)
            return "WED";
        else if(this == THU)
            return "THU";
        else if(this == FRI)
            return "FRI";
        else
            return "SAT";
    }

    public abstract WeekDay nextDay();
}
